package mil.af.amc.adpetracker.dao;

import mil.af.amc.adpetracker.model.HandReceipt;
import mil.af.amc.adpetracker.model.AdpeAccount;
import mil.af.amc.adpetracker.model.User;

import java.util.List;


/**
 * Interface for Hand Receipt DAO implementations
 *
 * @author TSgt Ferguson
 */
public interface HandReceiptDao extends GenericDao<HandReceipt>{

    /**
     * Retrieve a list of HandReceipt objects associated with a particular AdpeAccount object
     *
     * @param acct      an AdpeAccount object
     * @return      a List of HandReceipt objects, or an empty list
     */
    public List<HandReceipt> getByAdpeAccount(AdpeAccount acct);

    /**
     * Retrieve a list of HandReceipt objects associated with a particular User object
     *
     * @param user  a User object
     * @return      a List of HandReceipt objects, or an empty list
     */
    public List<HandReceipt> getByUser(User user);

    /**
     * Retrieve a hand receipt by it's string identifier
     *
     * @param name  a String representing the identifier
     * @return  a HandReceipt with the given identifier
     */
    public HandReceipt getByName(String name);

}
